// class GoodsInfoModel {
//   String? id;
//   String? merchantId;
//   String? storeId;
//   String? lang;
//   String? supplierId;
//   String? name;
//   String? type;
//   String? price;
//   String? store;
//   String? totalNum;
//   int? sellNum;
//   String? sellBasicNum;
//   String? pic;
//   dynamic sharePic;
//   String? sellDescription;
//   String? showLeftNum;
//   String? sellStatus;
//   String? sellStartTime;
//   String? sellEndTime;
//   String? validateTimeType;
//   String? validateStartTime;
//   String? validateEndTime;
//   String? validateDate;
//   String? showValidateTime;
//   String? isHolidayUse;
//   String? showIsHolidayUse;
//   String? useDescription;
//   String? showUseDescription;
//   String? sort;
//   String? desc;
//   String? createUserId;
//   String? isDelete;
//   String? isCanBuy;
//   String? createTime;
//   String? updateTime;
//   String? mainVideo;
//   String? videoCover;
//   String? duration;
//   String? categoryId;
//   String? shopCode;
//   String? deliverType;
//   dynamic freightId;
//   dynamic freight;
//   String? ratio;
//   dynamic goodsAttr;
//   String? cardNumberType;
//   String? buyMaxNum;
//   String? isAnonymousBuy;
//   String? recommend;
//   String? allowResell;
//   String? resellIntegral;
//   String? allowBargain;
//   String? bargainMin;
//   String? bargainMax;
//   String? allowReduce;
//   String? reachMoney;
//   String? reduceMoney;
//   String? shippingTemplateId;
//   List<GoodsInfoPicUrl>? picUrl;
//   GoodsInfoShopInfo? shopInfo;
//   int? stock;
//   String? number;
//   List<dynamic>? attrMap;
//   GoodsSellStatusInfo? sellStatusInfo;

//   GoodsInfoModel({
//     this.id,
//     this.merchantId,
//     this.storeId,
//     this.lang,
//     this.supplierId,
//     this.name,
//     this.type,
//     this.price,
//     this.store,
//     this.totalNum,
//     this.sellNum,
//     this.sellBasicNum,
//     this.pic,
//     this.sharePic,
//     this.sellDescription,
//     this.showLeftNum,
//     this.sellStatus,
//     this.sellStartTime,
//     this.sellEndTime,
//     this.validateTimeType,
//     this.validateStartTime,
//     this.validateEndTime,
//     this.validateDate,
//     this.showValidateTime,
//     this.isHolidayUse,
//     this.showIsHolidayUse,
//     this.useDescription,
//     this.showUseDescription,
//     this.sort,
//     this.desc,
//     this.createUserId,
//     this.isDelete,
//     this.isCanBuy,
//     this.createTime,
//     this.updateTime,
//     this.mainVideo,
//     this.videoCover,
//     this.duration,
//     this.categoryId,
//     this.shopCode,
//     this.deliverType,
//     this.freightId,
//     this.freight,
//     this.ratio,
//     this.goodsAttr,
//     this.cardNumberType,
//     this.buyMaxNum,
//     this.isAnonymousBuy,
//     this.recommend,
//     this.allowResell,
//     this.resellIntegral,
//     this.allowBargain,
//     this.bargainMin,
//     this.bargainMax,
//     this.allowReduce,
//     this.reachMoney,
//     this.reduceMoney,
//     this.shippingTemplateId,
//     this.picUrl,
//     this.shopInfo,
//     this.stock,
//     this.number,
//     this.attrMap,
//     this.sellStatusInfo,
//   });

//   factory GoodsInfoModel.fromJson(Map<String, dynamic> json) {
//     return GoodsInfoModel(
//       id: json['id'] as String?,
//       merchantId: json['merchant_id'] as String?,
//       storeId: json['store_id'] as String?,
//       lang: json['lang'] as String?,
//       supplierId: json['supplier_id'] as String?,
//       name: json['name'] as String?,
//       type: json['type'] as String?,
//       price: json['price'] as String?,
//       store: json['store'] as String?,
//       totalNum: json['total_num'] as String?,
//       sellNum: json['sell_num'] as int?,
//       sellBasicNum: json['sell_basic_num'] as String?,
//       pic: json['pic'] as String?,
//       sharePic: json['share_pic'] as dynamic,
//       sellDescription: json['sell_description'] as String?,
//       showLeftNum: json['show_left_num'] as String?,
//       sellStatus: json['sell_status'] as String?,
//       sellStartTime: json['sell_start_time'] as String?,
//       sellEndTime: json['sell_end_time'] as String?,
//       validateTimeType: json['validate_time_type'] as String?,
//       validateStartTime: json['validate_start_time'] as String?,
//       validateEndTime: json['validate_end_time'] as String?,
//       validateDate: json['validate_date'] as String?,
//       showValidateTime: json['show_validate_time'] as String?,
//       isHolidayUse: json['is_holiday_use'] as String?,
//       showIsHolidayUse: json['show_is_holiday_use'] as String?,
//       useDescription: json['use_description'] as String?,
//       showUseDescription: json['show_use_description'] as String?,
//       sort: json['sort'] as String?,
//       desc: json['desc'] as String?,
//       createUserId: json['create_user_id'] as String?,
//       isDelete: json['is_delete'] as String?,
//       isCanBuy: json['is_can_buy'] as String?,
//       createTime: json['create_time'] as String?,
//       updateTime: json['update_time'] as String?,
//       mainVideo: json['main_video'] as String?,
//       videoCover: json['video_cover'] as String?,
//       duration: json['duration'] as String?,
//       categoryId: json['category_id'] as String?,
//       shopCode: json['shop_code'] as String?,
//       deliverType: json['deliver_type'] as String?,
//       freightId: json['freight_id'] as dynamic,
//       freight: json['freight'] as dynamic,
//       ratio: json['ratio'] as String?,
//       goodsAttr: json['goods_attr'] as dynamic,
//       cardNumberType: json['card_number_type'] as String?,
//       buyMaxNum: json['buy_max_num'] as String?,
//       isAnonymousBuy: json['is_anonymous_buy'] as String?,
//       recommend: json['recommend'] as String?,
//       allowResell: json['allow_resell'] as String?,
//       resellIntegral: json['resell_integral'] as String?,
//       allowBargain: json['allow_bargain'] as String?,
//       bargainMin: json['bargain_min'] as String?,
//       bargainMax: json['bargain_max'] as String?,
//       allowReduce: json['allow_reduce'] as String?,
//       reachMoney: json['reach_money'] as String?,
//       reduceMoney: json['reduce_money'] as String?,
//       shippingTemplateId: json['shipping_template_id'] as String?,
//       picUrl: (json['pic_url'] as List<dynamic>?)
//           ?.map((e) => GoodsInfoPicUrl.fromJson(e as Map<String, dynamic>))
//           .toList(),
//       shopInfo: json['shop_info'] == null
//           ? null
//           : GoodsInfoShopInfo.fromJson(
//               json['shop_info'] as Map<String, dynamic>),
//       stock: json['stock'] as int?,
//       // number: json['number'] as String?,
//       // attrMap: json['attr_map'] as List<dynamic>?,
//       sellStatusInfo: json['sell_status_info'] == null
//           ? null
//           : GoodsSellStatusInfo.fromJson(
//               json['sell_status_info'] as Map<String, dynamic>),
//     );
//   }

//   Map<String, dynamic> toJson() => {
//         'id': id,
//         'merchant_id': merchantId,
//         'store_id': storeId,
//         'lang': lang,
//         'supplier_id': supplierId,
//         'name': name,
//         'type': type,
//         'price': price,
//         'store': store,
//         'total_num': totalNum,
//         'sell_num': sellNum,
//         'sell_basic_num': sellBasicNum,
//         'pic': pic,
//         'share_pic': sharePic,
//         'sell_description': sellDescription,
//         'show_left_num': showLeftNum,
//         'sell_status': sellStatus,
//         'sell_start_time': sellStartTime,
//         'sell_end_time': sellEndTime,
//         'validate_time_type': validateTimeType,
//         'validate_start_time': validateStartTime,
//         'validate_end_time': validateEndTime,
//         'validate_date': validateDate,
//         'show_validate_time': showValidateTime,
//         'is_holiday_use': isHolidayUse,
//         'show_is_holiday_use': showIsHolidayUse,
//         'use_description': useDescription,
//         'show_use_description': showUseDescription,
//         'sort': sort,
//         'desc': desc,
//         'create_user_id': createUserId,
//         'is_delete': isDelete,
//         'is_can_buy': isCanBuy,
//         'create_time': createTime,
//         'update_time': updateTime,
//         'main_video': mainVideo,
//         'video_cover': videoCover,
//         'duration': duration,
//         'category_id': categoryId,
//         'shop_code': shopCode,
//         'deliver_type': deliverType,
//         'freight_id': freightId,
//         'freight': freight,
//         'ratio': ratio,
//         'goods_attr': goodsAttr,
//         'card_number_type': cardNumberType,
//         'buy_max_num': buyMaxNum,
//         'is_anonymous_buy': isAnonymousBuy,
//         'recommend': recommend,
//         'allow_resell': allowResell,
//         'resell_integral': resellIntegral,
//         'allow_bargain': allowBargain,
//         'bargain_min': bargainMin,
//         'bargain_max': bargainMax,
//         'allow_reduce': allowReduce,
//         'reach_money': reachMoney,
//         'reduce_money': reduceMoney,
//         'shipping_template_id': shippingTemplateId,
//         'pic_url': picUrl?.map((e) => e.toJson()).toList(),
//         'shop_info': shopInfo?.toJson(),
//         'stock': stock,
//         'number': number,
//         'attr_map': attrMap,
//         'sell_status_info': sellStatusInfo?.toJson(),
//       };
// }

// class GoodsInfoPicUrl {
//   int? id;
//   String? filePathSmall;
//   String? filePathLarge;
//   int? width;
//   int? height;
//   int? createTime;
//   String? filePath;
//   String? type;
//   int? size;

//   GoodsInfoPicUrl({
//     this.id,
//     this.filePathSmall,
//     this.filePathLarge,
//     this.width,
//     this.height,
//     this.createTime,
//     this.filePath,
//     this.type,
//     this.size,
//   });

//   factory GoodsInfoPicUrl.fromJson(Map<String, dynamic> json) =>
//       GoodsInfoPicUrl(
//         id: json['id'] as int?,
//         filePathSmall: json['file_path_small'] as String?,
//         filePathLarge: json['file_path_large'] as String?,
//         width: json['width'] as int?,
//         height: json['height'] as int?,
//         createTime: json['create_time'] as int?,
//         filePath: json['file_path'] as String?,
//         type: json['type'] as String?,
//         size: json['size'] as int?,
//       );

//   Map<String, dynamic> toJson() => {
//         'id': id,
//         'file_path_small': filePathSmall,
//         'file_path_large': filePathLarge,
//         'width': width,
//         'height': height,
//         'create_time': createTime,
//         'file_path': filePath,
//         'type': type,
//         'size': size,
//       };
// }

// class GoodsInfoShopInfo {
//   String? name;
//   String? logo;
//   String? intro;
//   int? id;

//   GoodsInfoShopInfo({this.name, this.logo, this.intro, this.id});

//   factory GoodsInfoShopInfo.fromJson(Map<String, dynamic> json) =>
//       GoodsInfoShopInfo(
//         name: json['name'] as String?,
//         logo: json['logo'] as String?,
//         intro: json['intro'] as String?,
//         id: json['id'] as int?,
//       );

//   Map<String, dynamic> toJson() => {
//         'name': name,
//         'logo': logo,
//         'intro': intro,
//         'id': id,
//       };
// }

// class GoodsSellStatusInfo {
//   int? upDownStatus;
//   String? sellStatusName;

//   GoodsSellStatusInfo({this.upDownStatus, this.sellStatusName});

//   factory GoodsSellStatusInfo.fromJson(Map<String, dynamic> json) {
//     return GoodsSellStatusInfo(
//       upDownStatus: json['up_down_status'] as int?,
//       sellStatusName: json['sell_status_name'] as String?,
//     );
//   }

//   Map<String, dynamic> toJson() => {
//         'up_down_status': upDownStatus,
//         'sell_status_name': sellStatusName,
//       };
// }




// // class GoodsInfoContentInfo {
// //   String? id;
// //   String? store_id:
// //   String? intro;
// //   int? id;

// //   GoodsInfoContentInfo({this.name, this.logo, this.intro, this.id});

// //   factory GoodsInfoContentInfo.fromJson(Map<String, dynamic> json) =>
// //       GoodsInfoContentInfo(
// //         name: json['name'] as String?,
// //         logo: json['logo'] as String?,
// //         intro: json['intro'] as String?,
// //         id: json['id'] as int?,
// //       );

// //   Map<String, dynamic> toJson() => {
// //         'name': name,
// //         'logo': logo,
// //         'intro': intro,
// //         'id': id,
// //       };
// // }
